package com.loan.common.pdf;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;

/**
 * packageName com.loan.common.pdf
 *
 * @author Sophia
 * @className 微信PDF的页眉页脚工具
 * @description TODO
 * @date 2025/4/2
 */
public class WxHeaderFooterUtil extends PdfPageEventHelper {

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        Rectangle pageSize = document.getPageSize();

        float fontSize = 12; // 字体大小
        float lineWidth = 1; // 下划线宽度
        BaseColor color = BaseColor.BLACK; // 下划线颜色
        // 设置页眉
        PdfContentByte headerCb = writer.getDirectContent();
        float headerX = 40; // 页眉起始X坐标
        float headerY = pageSize.getHeight() - 34; // 页眉起始Y坐标，根据需要调整位置

        float widthHeader = pageSize.getWidth() - headerX * 2; // 页眉宽度
        headerCb.setLineWidth(lineWidth); // 设置线宽
        headerCb.setColorStroke(color); // 设置线条颜色
        headerCb.moveTo(headerX, headerY - fontSize / 2); // 移动到文本下方开始画线
        headerCb.lineTo(headerX + widthHeader, headerY - fontSize / 2); // 画到文本末尾结束线
        headerCb.stroke(); // 画出线条

        // 设置页脚
        PdfContentByte footerCb = writer.getDirectContent();
        float footerX = 40; // 页脚起始X坐标
        float footerY = 36; // 页脚起始Y坐标，根据需要调整位置
        float widthFooter = pageSize.getWidth() - footerX * 2; // 页眉宽度

        footerCb.setLineWidth(lineWidth); // 设置线宽
        footerCb.setColorStroke(color); // 设置线条颜色
        footerCb.moveTo(footerX, footerY - fontSize / 2); // 移动到文本下方开始画线
        footerCb.lineTo(footerX + widthFooter, footerY - fontSize / 2); // 画到文本末尾结束线
        footerCb.stroke(); // 画出线条
    }
}
